package demo.practice.leetcode;

public class P189 {

    public static void main(String[] args) {
        int[] a= {1,2,3,4,5,6,7};
        P189 p189= new P189();
        p189.rotate(a,3);

    }

    public void rotate(int[] nums, int k) {
        /*向右旋转 1 步: [7,1,2,3,4,5,6]  [1,2,3,4,5,6,7]
        向右旋转 2 步: [6,7,1,2,3,4,5]
        向右旋转 3 步: [5,6,7,1,2,3,4]*
        移动  nums.length次 回到原位 ，所以可以先将k%nums.length
        除了像前插入的数字，其他的数字都是往后移动
        移动后的位置为  nums[i+k]= nums[i]
        当 i+k>nums.length-1（6） 则  nums[i+k-6]=nums[i]
         */

        k= k%nums.length;
        int len=nums.length;
        int arr2[]= new int[nums.length];

        for(int i=0;i<len;i++){
            if(i+k>len-1){
                arr2[i+k-len]=nums[i];
//                swap(nums,i+k+-len,i);
            }else{
//                swap(nums,i+k,i);
                  arr2[i+k]=nums[i];

            }
        }
//        nums=arr2;

        System.arraycopy(arr2,0,nums,0,len);
        System.out.println("xx");
    }


}
